/**
 * 响应拦截
 * @param {Object} http 
 */
module.exports = (vm) => {
	uni.$u.http.interceptors.response.use((response) => {
		/* 对响应成功做点什么 可使用async await 做异步操作*/
		const data = response.data

		// 自定义参数
		const custom = response.config?.custom

		if (data.code !== 1) { // 服务端返回的状态码不等于200，则reject()
			// 如果没有显式定义custom的toast参数为false的话，默认对报错进行toast弹出提示
			if (custom.toast !== false) {
				uni.$u.toast(data.msg)
			}

			// 如果需要catch返回，则进行reject
			if (custom?.catch) {
				return Promise.reject(data)
			} else {
				console.log('aaaaaaa');
				console.log(data.code);
				if(data.code == 3 || data.code == 4) {
					uni.showModal({
						title:'温馨提示',
						content:data.msg,
						showCancel:false,
						success(e) {
							if(e.confirm) {
								uni.redirectTo({
									url:data.code == 3 ? '/pages/mine/recharge' : '/pages/mine/vip'
								})
							}
						}
					})
				}
				// 否则返回一个pending中的promise
				return Promise.reject(data)
			}
		}
	
		return data.data || {}
	}, (response) => {
		/*  对响应错误做点什么 （statusCode !== 200）*/
		console.log('response', response);
		if (response.data.code == '401') {
			uni.removeStorageSync('token');
		}else if (response.data.code == '402') {
			uni.$u.toast(response.data.msg);
			setTimeout(() => {
				uni.reLaunch({
					url:'/pages/user/index'
				})
			},500)
		}
		return Promise.reject(response)
	})
}